package com.yjd.comm.util;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.yjd.comm.sms.model.TempSendSmsModel;
import com.yjd.comm.vo.Constant.SmsTemplateCodeEnum;

/**
 * 发送短信
* @author renbangjie renbangjie@126.com
* @date 2014-11-13 下午8:18:39
 */
public class Message {
	
	/**
	 * 短信模板
	 */
	private SmsTemplateCodeEnum template;
	
	/**
	 * 手机号集合
	 */
	private List<String> mobileNumbers = new ArrayList<String>();
	
	/**
	 * 键值集合
	 */
	private Map<Object, Object> contents = new HashMap<Object, Object>();
	
	/**
	 * 短信服务类
	 */
	private TempSendSmsModel tempSendSmsModel = new TempSendSmsModel();
	
	/**
	 * 使用模板创建一个短信发送器
	* @param template
	 */
	public Message(SmsTemplateCodeEnum template) {
		this.template = template;
	}
	
	private Message(){}
	
	
	/**
	 * 设置要发送的手机号
	* @param number
	* @return MessageContent
	 */
	public MessageContent addMobileMumber(String number){
		this.mobileNumbers.add(number);
		return new MessageContent();
	}
	
	/**
	 * 设置待发送手机号
	* @param numbers
	* @return MessageContent
	 */
	public MessageContent addMobileMumber(String[] numbers){
		for (String temp : numbers) {
			this.mobileNumbers.add(temp);
		}
		return new MessageContent();
	} 
	
	
	/**
	 * 设置短信内容
	* @author renbangjie renbangjie@126.com
	* @date 2014-11-17 上午9:56:13
	 */
	public class MessageContent{
		
		/**
		 * 填充短信模板内容
		* @param key
		* @param value
		* @return MessageContent
		 */
		public MessageContent addContent(String key, String value){
			contents.put(key, value);
			return this;
		}
		
		/**
		 * 生成短信
		* @return TempSendSmsModel
		 */
		public TempSendSmsModel deploy(){
			tempSendSmsModel.setMobileList(mobileNumbers);
			tempSendSmsModel.setTemplatePrams(contents);
			tempSendSmsModel.setSmsTemplateCodeEnum(template);
			return tempSendSmsModel;
		}
		
	}
		
}
